Most research facilities and many businesses and industries presently use data processing systems in order to handle information processing needs ranging from very simple bookkeeping operations to the control of very complex processes.
Typically, such institutions purchase the original data processing equipment when they are either small or their data processing needs are unsophisticated. In such an initial stage a small data processing system with relatively few capabilities often serves to satisfy the user's needs. However, as the data processing user grows in size or his needs become more sophisticated and complex, it is desirable that his initial data processing system can be modified and expanded to fit the user's expanding data processing needs.
In order to accommodate growth and changing data processing needs, many prior art data processing systems have been designed with a base system that can be either expanded or altered in order to tailor the system to the customer's needs. The type of modification or expansion which is required depends on the particular needs and functions required by each individual user. Some users may require increased memory size while others require increased processing speed. While many prior art computer systems have been designed to provide for expansion and modification in some aspects most prior art designs sacrifice some aspects of performance or require greatly increased costs in order to provide such flexibility.
For example, most present day data processing systems have the capability of expanding system memory by physically inserting additional memory circuit boards. During the memory installation procedure, internal manual switches are set to inform the computer that additional memory has been added. This simple design satisfactorily provides for expansion of memory size but may also require a rewrite of the user's software programs to accomodate the added memory. In addition, memory size expansion is limited by the size of the address word used in the system. When the memory reaches the largest size capable of being addressed by address word, it becomes necessary to replace the computer circuitry with new or additional circuitry which can utilize a larger address word length. Such a circuitry change often involves a significant cost and usually also necessitates a rewrite of the user's software programs. The cost and time delay involved in the latter operation may make such change unfeasible.
Even in systems in which memory size can be expanded significantly, however, the overall processing speed of the entire system may be limited by the speed of the processing element itself. In order to increase processing speed, many prior art systems have been designed with specialized high-speed logic circuitry which performs repetitive, time-consuming functions such as input/output processing and address translations. Even with such special high-speed hardware, however, processing time eventually becomes limited by the processing speed of the single processor.
In order to increase total processing speed further, prior art multi-processor systems have been developed. These systems typically consist of a number of separate computer systems, each with its own separate processor and memory tied together by a common system bus. In this type of system some or all of the processing units may be involved in the solution of a single problem or the units may be involved in the solution of several problems simultaneously. Typically, in order to coordinate the operation of the separate processors, a fixed "executive" processor controls the overall or global system functions to prevent conflict. The introduction of a fixed executive processor itself causes additional problems because as the capability of the system expands eventually this processor becomes overloaded with executive functions. If two exeutive processors are used in a system then a complicated scheme must be developed in order to divide responsibilities between the executive processors. In addition, a single failure in the executive processor effectively stops the operation of the whole system since executive functions must be performed continually in order to assure reliable system operation.
Accordingly, it is an object of the present invention to provide a multi-processor computer system which does not have a fixed executive processor.
It is another object of the present invention to provide a modular computer system to which processing elements, memory elements and input/output peripheral units can be added or removed in order to tailor the system to the user's data processing needs.
It is yet another object of the present invention to provide a modular computer system in which modules can be added or removed without necessitating any special user programming.
It is yet another object of the present invention to provide a modular computer system in which modules can be added or removed without requiring a large amount of additional electronic circuitry which performs the executive function.
It is yet another object of the present invention to provide a modular computer system in which modules can be added or subtracted without adversely affecting the overall throughput of the system.
It is yet a further object of the invention to provide a modular computer in which failure of an executive processor does not destroy overall system operation.